package com.xgk.boot.module.core.api.order;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单主信息数据传输对象
 * 用于前端展示和接口传输
 */
@Data
public class OrdersDTO {
    /**
     * 主键ID
     */
    private Integer orderId;

    /**
     * 订单编号
     */
    private String orderCode;

    /**
     * 客户参考号
     */
    private String referenceNo;

    /**
     * 客户ID
     */
    private Integer customerId;

    /**
     * 客户代码
     */
    private String customerCode;

    /**
     * 平台代码
     */
    private String platform;

    /**
     * 订单类型：0:普通
     */
    private Integer orderType;

    /**
     * 创建类型:api,upload,hand
     */
    private String createType;

    /**
     * 国家简码
     */
    private String countryCode;

    /**
     * 物流产品代码
     */
    private String smCode;

    /**
     * 服务商渠道代码
     */
    private String spCode;

    /**
     * 运费估算
     */
    private BigDecimal shippingFeeEstimate;

    /**
     * 币种Code
     */
    private String currencyCode;

    /**
     * 物品内容描述（内装何物）下单时填写
     */
    private String parcelContents;

    /**
     * 内件数量
     */
    private Integer parcelQuantity;

    /**
     * 订单重量
     */
    private Double oWeight;

    /**
     * 订单状态
     * 0:已取消;1:草稿;2:已提交;3:已预报;99:已作废
     */
    private Integer orderStatus;

    /**
     * 订单子状态
     * 0-无异常,1-预报异常
     */
    private Integer orderSubStatus;

    /**
     * 拦截状态
     * 0:无;1:申请拦截;2:拦截中;3:拦截失败;4:已拦截
     */
    private Integer interceptStatus;

    /**
     * 等待状态
     * 0:无;1:物流处理
     */
    private Integer orderWaitingStatus;

    /**
     * 计费状态
     * 0:计费完成 1:待计费 2: 计费失败
     */
    private Integer orderChargeStatus;

    /**
     * 是否为手工上传跟踪号
     * 0:否 1:是
     */
    private Integer isUploadExpress;

    /**
     * 需要或允许,重新预报
     */
    private Integer isAnewExpress;

    /**
     * 同步服务商标志
     * 0：未同步1：已同步 2：同步失败
     */
    private Integer syncServiceStatus;

    /**
     * 记录同步次数
     */
    private Integer syncCount;

    /**
     * 标签打印次数
     */
    private Integer printQuantity;

    /**
     * 备注
     */
    private String remark;

    /**
     * 操作说明
     */
    private String operatorNote;

    /**
     * 物流异常
     */
    private String logisticsErr;

    /**
     * 是否为ODA件
     * 1:是 0:否
     */
    private Integer isOda;

    /**
     * ODA类型
     * 0:oda 1:偏远 2:超偏远
     */
    private Integer odaType;

    /**
     * 是否购买签名服务
     * 0:否 1:普通签名 2:成人签名
     */
    private Integer isSignature;

    /**
     * 是否购买保险服务
     * 1:是 0:否
     */
    private Integer isInsurance;

    /**
     * 投保金额
     */
    private BigDecimal insuranceValue;

    /**
     * 物品申报价值,下单时填写,非SKU加总
     */
    private BigDecimal parcelDeclaredValue;

    /**
     * 是否为住宅
     * 1:是，0:否
     */
    private Integer isResidential;

    /**
     * 地址验证标识
     * 0:未检测 1:已检测 2:失败
     */
    private Integer validateAddressSign;

    /**
     * 计费类型
     * 0:标准 1:免运费
     */
    private Integer orderChargeType;

    /**
     * 是否一票多件
     * 0:不是 1:是
     */
    private Integer isMoreBox;

    /**
     * PO代码
     */
    private String poCode;

    /**
     * VAT代码
     */
    private String vatCode;

    /**
     * 是否为FBA地址
     * 0否 1是
     */
    private Integer isFbaAddress;

    /**
     * 关联客户地址ID
     */
    private Integer caId;

    /**
     * 订单同步过程中的异常信息
     */
    private String syncInfo;

    /**
     * 用户ID
     */
    private Integer userId;

    /**
     * 出账状态
     * 0-未出账 1-已匹配 2-部分匹配 3-部分出账 4-已出账
     */
    private Integer billStatus;

    /**
     * 标签回调地址
     */
    private String labelCallbackUrl;

    /**
     * 地址类型
     * 0-商业地址 1-住宅地址
     */
    private Integer orderAddressType;

    /**
     * 亚马逊地址代码
     */
    private String warehouseCode;

    /**
     * 服务商类型
     */
    private Integer spType;

    /**
     * 同步回调状态
     */
    private Integer syncCallbackStatus;

    /**
     * FBA地址代码
     */
    private String fbaCode;

    /**
     * 所属实体ID
     */
    private Integer entityId;

    /**
     * 渠道方式历史记录
     */
    private Integer smoId;

    /**
     * 标签打印状态
     */
    private Integer labelPrint;

    /**
     * 同步服务商次数
     */
    private Integer syncServiceCount;

    /**
     * 是否已打印标签
     */
    private Integer printLabel;

    /**
     * 产品SKU
     */
    private String productSku;

    /**
     * 计量单位类型
     * 1.LBS/Inches，2.KG/CM
     */
    private Integer weightUnitType;

    /**
     * 是否为退货订单
     * 0不是，1是退货订单
     */
    private Integer isReturn;

    /**
     * 支付状态
     * 0未支付 1支付中 2已支付
     */
    private Integer payStatus;

    /**
     * 危险品服务
     * 0不使用 1使用
     */
    private Integer dangerousService;

    /**
     * 是否高度危险品种
     * 0不是 1是
     */
    private Integer dangerousCargo;

    /**
     * 是否可以接近触摸
     * 0不可以 1可以
     */
    private Integer dangerousAccessibility;

    /**
     * 危险品类型
     * 0无 1危险物质 2电池 3矿
     */
    private Integer dangerousOptions;

    /**
     * 面单类型
     * PDF ZPL
     */
    private String labelFormat;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;
}
